package com.hxzy.controller.userinfo;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hxzy.util.StringUtil;
import com.hxzy.util.ThreadLocalUtil;
import com.hxzy.common.BaseServlet;

import com.hxzy.dto.UserInfoDTO;
import com.hxzy.entity.UserInfo;
import com.hxzy.service.UserInfoService;
import com.hxzy.service.impl.UserInfoServiceImpl;
import org.mindrot.jbcrypt.BCrypt;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * @Description:
 * @Author: ykj
 * @Date: 2022/2/26 17:04
 */

@WebServlet(urlPatterns = "/userinfo/search")
public class SearchServlet extends BaseServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        当前用户是谁
        System.out.println(ThreadLocalUtil.threadLocal.get().toString());

//        super.startPage(req);

        //收集参数
        UserInfoDTO userInfoDTO=new UserInfoDTO();

        //加入数据
        UserInfo insert=null;
        //id条件判断
        Integer id1 = -1;
        //loginName查询
        String loginName=null;

        //当前是第几页
        String value=req.getParameter("page");
       if (StringUtil.isNotBlank(value) && StringUtil.isIntGtZore(value)){
           userInfoDTO.setPage(Integer.parseInt(value));
       }else {
           userInfoDTO.setPage(1);
       }

       //每页几笔
        String value2=req.getParameter("size");
       if(StringUtil.isNotBlank(value2) && StringUtil.isIntGtZore(value2)){
            userInfoDTO.setSize(Integer.parseInt(value2));
       }else {
           userInfoDTO.setSize(10);
       }

       //添加修改数据
//        String id = req.getParameter("id");
//        String loginName2 = req.getParameter("loginName");
//        String loginPwd = req.getParameter("loginPwd");
//        String status = req.getParameter("status");
//        if (StringUtil.isNotBlank(id)&&StringUtil.isNotBlank(loginName2)
//                &&StringUtil.isNotBlank(loginPwd)&&StringUtil.isNotBlank(status)
//                &&StringUtil.isInt(id) && StringUtil.isInt(status)
//        ){
//             insert = insert(Integer.parseInt(id), loginName2, loginPwd, Integer.parseInt(status));
//        }



//        // 根据id条件查询
//        String id = req.getParameter("id");
//        if (StringUtil.isNotBlank(id) && StringUtil.isIntGtZore(id)){
//            id1=Integer.parseInt(id);
//        }


        //根据loginName查询数据
        //用户传过来的查询其他参数
         loginName=req.getParameter("loginName");
       if (StringUtil.isNotBlank(loginName)){
           userInfoDTO.setLoginName(loginName);
       }

       //判断状态
        String value4=req.getParameter("status");
       if (StringUtil.isNotBlank(value4) &&StringUtil.isInt(value4)){
           userInfoDTO.setStatus(Integer.parseInt(value4));
       }

       //调用你业务逻辑层 ，开启分页
        PageHelper.startPage(userInfoDTO.getPage(),userInfoDTO.getSize());

        UserInfoService service=new UserInfoServiceImpl();
        List<UserInfo> all = service.findAll(userInfoDTO);
        super.render(resp, new PageInfo(all));

//        List<UserInfo> list=new ArrayList<>();
        //加入数据
//        int insert1 = service.insert(insert);
        //修改数据
//         service.update(insert);
//         super.render(resp, "修改成功");

        //根据id查询
//        UserInfo one = service.findOne(id1);
//        list.add(one);
        //根据loginName查询
//        UserInfo loginName1 = service.findLoginName(userInfoDTO);
//        list.add(loginName1);

//        super.render(resp, new PageInfo(list));


    }

    //数据库增加修改方式
    public static UserInfo insert(Integer id,String loginName,String LoginPwd,Integer status){
        UserInfo userInfo=new UserInfo();
            userInfo.setId(id);
            userInfo.setLoginName(loginName);
            userInfo.setLoginPwd(BCrypt.hashpw(LoginPwd, BCrypt.gensalt()));
            userInfo.setStatus(status);
        return userInfo;
    }




}
